package model

import (
	"manager/model/entity"
)

// AlarmTypeCreateRequest 创建现场数据
type AlarmTypeCreateRequest struct {
	Name string `json:"name"`

	Content string `json:"content"`

	Code string `json:"code"`

	Low int `json:"low"`

	High int `json:"high"`

	UpdatedAt int64 `json:"updated_at"`
}

// AlarmTypeUpdateRequest 更新现场数据
type AlarmTypeUpdateRequest struct {
	Id int64 `json:"id"`

	Name *string `json:"name"`

	Content *string `json:"content"`

	Low *int `json:"low"`

	High *int `json:"high"`

	CreatedAt int64 `json:"created_at"`

	UpdatedAt *int64 `json:"updated_at"`
}

// AlarmTypeListRequest 列表现场数据
type AlarmTypeListRequest struct {
	Index int `json:"index"`
	Size  int `json:"size"`

	Id int64 `json:"id"`

	Name *string `json:"name"`

	Content *string `json:"content"`

	Low *int `json:"low"`

	High *int `json:"high"`

	UpdatedAt *int64 `json:"updated_at"`
}

// AlarmTypeListResponse 列表回包数据
type AlarmTypeListResponse struct {
	Total int              `json:"total"`
	List  []*AlarmTypeInfo `json:"list"`
}

type AlarmTypeInfoRequest struct {
	Id   int64  `json:"id"`
	Code string `json:"code"`
}

// AlarmTypeInfo 详细数据
type AlarmTypeInfo struct {
	Id int64 `json:"id"`

	Name string `json:"name"`

	Content string `json:"content"`

	Code string `json:"code"`

	Low int `json:"low"`

	High int `json:"high"`

	CreatedAt int64 `json:"created_at"`

	UpdatedAt int64 `json:"updated_at"`
}

// AlarmTypeDeleteRequest 删除现场数据
type AlarmTypeDeleteRequest struct {
	Id int64 `json:"id"`
}

// AlarmTypesEntityToDto entity数据转换
func AlarmTypesEntityToDto(alarmTypes []*entity.AlarmType) []*AlarmTypeInfo {
	out := make([]*AlarmTypeInfo, 0, len(alarmTypes))
	for _, c := range alarmTypes {
		out = append(out, AlarmTypeEntityToDto(c))
	}
	return out
}

// AlarmTypeEntityToDto entity数据转换
func AlarmTypeEntityToDto(e *entity.AlarmType) *AlarmTypeInfo {
	return &AlarmTypeInfo{

		Id: e.Id,

		Name: e.Name,

		Content: e.Content,

		Code: e.Code,

		Low: e.Low,

		High: e.High,

		CreatedAt: e.CreatedAt,

		UpdatedAt: e.UpdatedAt,
	}
}
